Tester-driven development

Tester-driven development is an anti-pattern in software development. It should not be confused with test-driven development. It refers to any software development project where the software testing phase is too long. The testing phase is so long that the requirements may change radically during software testing. New or changed requirements often appear as bug reports. Bug tracking software usually lacks support for handling requirements. As a result of this nobody really knows what the system requirements are.

Projects that are developed using this anti-pattern often suffer from being extremely late. Another common problem is poor code quality.

Common causes for projects ending up being run this way are often:

Things get worse when the testers realise that they don't know what the requirements are and therefore don't know how to test any particular code changes. The onus then falls on the developers of individual changes to write their own test cases and they are happy to do so because their own tests normally pass and their performance measurements improve. Project leaders are also delighted by the rapid reduction in the number of open change requests.